#include <iostream>
#include <string>
#include <unistd.h>
#include <signal.h>
#include <cstdlib>
#include <cerrno>
#include <cstring>
#include <sys/types.h>
using namespace std;

int count = 0;

void usage(string str)
{
    cout << "\tusage :" << str << "+ signo" << endl; 
}

void handler(int signo)
{
    cout << "get a signo :" << signo << endl;
}

void _alarm(int signo)
{
    // cout << "time up!" << " count :" << count << endl;
    // exit(1);
    int n = alarm(10); // 返回闹钟的剩余秒数
    cout << "return :" << n << endl;
}

int main(int argv, char* argc[])
{
    
    cout << "pid :" << getpid() << endl;
    signal(SIGALRM, _alarm);
    alarm(10);

    while(1) sleep(1);

    // signal(2, handler);

    // while(1)
    // {
    //     raise(2);
    //     sleep(1);
    // }
    // if(argv != 3)
    // {
    //     usage(argc[0]);
    //     exit(1);
    // }
    // kill 命令模拟
    // int n = kill(atoi(argc[2]), atoi(argc[1]));
    // if(n == -1)
    // {
    //     cout << errno << ": " << strerror(errno) << endl;
    //     exit(2);
    // }

    return 0;
}





// int main()
// {
//     signal(SIGINT, handler);
//     signal(SIGQUIT, handler);

//     for(int i = 1; i <= 31; i++)
//     {
//         signal(i, handler);
//     }

//     while(1)
//     {
//         cout << "我是一个进程，正再运行..." << getpid() << endl;
//         sleep(1);
//     }
//     return 0;
// }